﻿#define _CRT_SECURE_NO_WARNINGS 1 
//#include <set>
//#include <iostream>
//using namespace std;
//
//int main()
//{
//	set<int> s = { 9,5,7,4,6,10,6,8 };//排序+去重
//	auto it = s.begin();
//	while (it != s.end())
//	{
//		//不支持修改
//		// *it += 1; 
//		cout << *it << " ";
//		it++;
//	}
//	cout << endl;
//
//	s.insert(6);//6在原容器中已经存在，插入失败
//	s.insert(11);//原容器中不存在11，插入成功
//	it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//	cout << endl;
//
//	s.insert({ 12,16,14 });
//	it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//
//	return 0;
//}

//#include <set>
//#include <iostream>
//using namespace std;
//
//int main()
//{
//	set<int> s = { 9,5,7,4,6,10,6,8 ,13,12,15,14};//排序+去重
//	auto it1 = s.lower_bound(6);
//	auto it2 = s.upper_bound(13);
//	auto next = s.erase(it1, it2);
//	for (const auto& e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	if(next != s.end())
//		cout << *next << endl;
//
//	return 0;
//}
//#include<iostream>
//#include<set>
//using namespace std;
//
//int main()
//{
//	// 相⽐set不同的是，multiset是排序，但是不去重 
//	multiset<int> s = { 4,2,7,2,4,8,4,5,4,9 };
//	auto it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//	cout << endl;
//
//	// 相⽐set不同的是，x可能会存在多个，find查找中序的第⼀个 
//	int x;
//	cin >> x;
//	auto pos = s.find(x);
//	while (pos != s.end() && *pos == x)
//	{
//		cout << *pos << " ";
//		++pos;
//	}
//	cout << endl;
//	// 相⽐set不同的是，count会返回x的实际个数 
//	cout << s.count(x) << endl;
//	// 相⽐set不同的是，erase给值时会删除所有的x 
//	s.erase(x);
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	return 0;
//}

#include <iostream>
using namespace std;

int main()
{
	pair<string, string> kv1("sort", "排序");
	pair<string, string> kv2("left", "左边");
	pair<string, string> kv3("right", "右边");
	pair<string, string> kv4 = { "insert", "插入" };
	auto kv5 = make_pair("selete", "选择");
	cout << "first: " << kv1.first << " second: " << kv1.second << endl;
	cout << "first: " << kv2.first << " second: " << kv2.second << endl;
	cout << "first: " << kv3.first << " second: " << kv3.second << endl;
	cout << "first: " << kv4.first << " second: " << kv4.second << endl;
	cout << "first: " << kv5.first << " second: " << kv5.second << endl;

	return 0;
}